Class_name = "CTurretAI"
object_name = "TurretAI"

//////	Controller specific
Artificial=true;

ControlledType=GOT_VEHICLE_TURRET;

// formula for calculating AI's aiming error

// calculation formula
// error along the axis (meters) = tan(
// random number * (AddCoef + ProjSpeedCoef * speed difference in the aiming sight coordinates (in meters per second) )
// * (current overload * OverloadCoef + CoefLow/Hi/Ace)
// )
// * distance to target;
// random number is a number from -1.0 to 1.0
// tan means tangent. Depending on the tangent of the error angle and the distance to the target, the final error is obtained

// coefficient of conversion of the speed difference between the object on which the turret is located and the AI's target, into angles error 
ProjSpeedCoef = 0.1f;

//     
AddCoef = 0.05f;

//            
MaxBotOverload = 16.0f;

//      
OverloadCoef = 0.15f;

//         
CoefLow		= 8.0f;
CoefMed		= 4.0f;
CoefHigh	= 2.0f;
CoefAce		= 1.0f;

//            
//       
ErrorCircleTime = 1.0f;
ErrorChangeTime = 0.5f;

//       ,      
MaxWaitTime = 0.2f;	

// ,             
GroundTargetErrorCoeff = 0.05f;

// ,            
BalloonTargetErrorCoeff = 0.05f;

//   -  ,    
FireShootTimeMin = 0.5f;
FireShootTimeMax = 1.5f;		

FireWaitTimeMin = 0.2f;	
FireWaitTimeMax = 0.5f;

// target search period, a check is made every period, increased freq is computationally expensive
// Search distances for different AI levels, e.g., for AI Low, the AI does not perceive targets further than 400 meters

MaxSearchTime = 0.1f;

SearchDistanceLow   = 300.0f;
SearchDistanceMed   = 400.0f;
SearchDistanceHigh  = 500.0f;
SearchDistanceAce   = 600.0f;

SearchDistanceMinLow   = 200.0f;
SearchDistanceMinMed   = 300.0f;
SearchDistanceMinHigh  = 300.0f;
SearchDistanceMinAce   = 400.0f;

SearchDistanceAttackBalloon				= 400.0f;
SearchDistanceAttackGround				= 300.0f;
SearchDistanceShort					= 0.7;
SearchDistanceMedium					= 2.0;
BackFire3DAngle						= 30.0; 
BackFireDistance					= 400.0;
BackFirePlanePriorityType				= 2;
BackFireResetToDefaultTime				= 10.0;